home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_floater.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  66 lines

  1. #ifndef __EWL_FLOATER_H__
  2. #define __EWL_FLOATER_H__
  3.  
  4. /**
  5.  * @file ewl_floater.h
  6.  * @defgroup Ewl_Floater Floater: A Floating Container
  7.  * @brief Defines a widget for layering above other widgets in EWL's drawing
  8.  * area, with the ability to follow the movement of another widget.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /floater/file
  15.  * @themekey /floater/group
  16.  */
  17.  
  18. /**
  19.  * The floater is a container for widgets that need to be drawn on top
  20.  * of multiple widgets (ie. dropdownbox)
  21.  */
  22. typedef struct Ewl_Floater Ewl_Floater;
  23.  
  24. /**
  25.  * @def EWL_FLOATER(floater)
  26.  * Typecasts a pointer to an Ewl_Floater pointer.
  27.  */
  28. #define EWL_FLOATER(floater) ((Ewl_Floater *) floater)
  29.  
  30. /**
  31.  * @struct Ewl_Floater
  32.  * Inherits from Ewl_Box for layout purposes. Provides a means to layer above
  33.  * other widgets and to follow the movement of another widget.
  34.  */
  35. struct Ewl_Floater
  36. {
  37.     Ewl_Box         box; /**< Inherit from Ewl_Box */
  38.     Ewl_Widget     *follows; /**< The widget to position relative to */
  39.     int             x; /**< The x offset from follows x positon */
  40.     int             y; /**< The y offset from follows y positon */
  41. };
  42.  
  43.  
  44. Ewl_Widget     *ewl_floater_new(void);
  45. int             ewl_floater_init(Ewl_Floater *f);
  46. void            ewl_floater_follow_set(Ewl_Floater *f, Ewl_Widget *p);
  47. Ewl_Widget     *ewl_floater_follow_get(Ewl_Floater *f);
  48. void            ewl_floater_position_set(Ewl_Floater *parent, int x, int y);
  49. void            ewl_floater_position_get(Ewl_Floater *parent, int *x, int *y);
  50.  
  51. /*
  52.  * Internally used callbacks, override at your own risk.
  53.  */
  54. void ewl_floater_follow_configure_cb(Ewl_Widget *w, void *ev_data,
  55.                      void *user_data);
  56. void ewl_floater_follow_destroy_cb(Ewl_Widget *w, void *ev_data,
  57.                    void *user_data);
  58. void ewl_floater_reparent_cb(Ewl_Widget *parent, void *ev_data,
  59.                  void *user_data);
  60.  
  61. /**
  62.  * @}
  63.  */
  64.  
  65. #endif                /* __EWL_FLOATER_H__ */
  66.